perm filename TBOX.OLD[CMS,LCS] blob sn#437671 filedate 1979-08-30 generic text, type T, neo UTF8
00100		TITLE TBOX
00200		.INSERT MAC748.FAI[CMS,LCS]
00300	
00400	   ;Ram bank 0 registers.
00500		K ← 0
00600		I ← 1
00700		N ← 2
00800		T ← 3	;Timer overflow count.
00900		CMD ← 4	;TBOX and JS led bits.
01000		CMD1 ← 5	;Alfa led message index.
01100		OFFL ← 6	;Alfa off timer low.
01200		OFFH ← 7	;High.
01300	
01400	   ;Ram10-27 = Stack.
01500	   ;Ram bank 1 registers.
01600		P ← 30	;Pots pointer.
01700		O ← 31	;Offset pointer.
01800		X ← 32
01900		Y ← 33
02000		Z ← 34
02100		SW0 ← 35	;TBOX switch bits.
02200		SW1 ← 36
02300		SW2 ← 37
02400	
02500	   ;Standard ram.
02600		SPD ← 40	;Speed pot.
02700		P0 ← 41	;Joy stick pots.
02800		P1 ← 42
02900		P2 ← 43
03000		P3 ← 44
03100		JW0 ← 45	;T.	Joy stick switch channels.
03200		JW1 ← 46	;P/O.
03300		JW2 ← 47	;TOOL.
03400		JW3 ← 50	;T/JS/C.
03500	
03600		OSPD ← 51	;Old speed pot.
03700		OP0 ← 52	;Joy stick offsets.
03800		OP1 ← 53
03900		OP2 ← 54
04000		OP3 ← 55
04100		OJSW ← 56	;Old joy stick switch bits.
04200		OCMD ← 57	;Old led bits.
04300		OCMD1 ← 60	;Old alfa led index.
04400	
04500		JSC ← 61	;Joy stick not calib. flag.
04600	
04700		XTAL ← =6000000	;In hertz.
04800		BRATE ← =9600	;Baud rate
04900	
05000	;TBIT ← ((=10000000/BRATE)/((=10000000/XTAL)*=15))/2
05100		TBIT ← =21
05200	
05300		TT ← 1	;Triple throw switch port.
05400		S ← 2	;Scan and A/D port.
05500		PBL ← 4	;Push button port low.
05600		PBH ← 5	;Push button port high.
05700		CEW ← 6	;Alfa led chip enables and write port.
05800		JS ← 7	;Joy stick, CU, and led latch port.
     

00100	   ;Reset and interrupt vectors.
00200		JMP	RST	;RESET VECTOR
00300		0
00400		DISXI		;EXTERNAL INTERRUPT VECTOR
00500		NOP
00600		NOP
00700		NOP
00800		DISTI		;TIMER INT VECTOR
00900		RETR
01000	
01100	   ;Power on reset.
01200	RST:	CLRA	;0 For clear cursor memory.
01300		OUTB	;Latch bus output.
01400		MOVI	377	;SETUP INPUT PORTS
01500		OUTP	TT	;SPTT switches.
01600		MOVI	77	;P4-7, SCAN, STRT, ALE.
01700		OUTP	S
01800	   ;Setup PBSW ports for input.
01900		MOVAX	PBL	;PBSW low.
02000		MOVAX	PBH	;PBSW high.
02100	
02200	   ;Clear cursor memory.
02300		MOVI	170	;7,,10.
02400		MOVAX	CEW	;Enable all alfa leds.
02500		SWAP	;A ← 207.
02600		MOVAX	JS	;Clear JS and CU.
02700	   ;Write all alfa leds.
02800		ANPA	CEW	;NOT W
02900		CPLA
03000		ORPA	CEW	;W
03100	
03200		SWAP	;A ← 10,,7.
03300		ORPA	CEW	;Disable all alfa leds.
03400		SWAP	;A0-3 ← 10.
03500		ORPA	JS	;NOT CU.
03600	
03700		CALL	CLED	;Clear leds.
03800		CALL	CALED	;Clear alfa leds.
03900		JINT	CLRJSL	;Check if joy stick.
04000		JMP	STIMER
04100	CLRJSL:	MOVRI	N,4	;Joy stick not cal. bit.
04200		CALL	CJLED	;Init joy stick leds.
04300	STIMER:	MOVAT		;Setup timer.
04400		STRTT
04500	
04600		CPLF1	;Set alfa leds off.
04700		MOVRI	K,JSC
04800		MOVMI	K,4	;Set joy stick not calib.
04900		
05000		JMP	SETFLG
05100	
05200	; Set scan flag and timer
05300	UPFLG:	DJNZ	T,CKIN
05400	SETFLG:	MOVRI	T,4	;4 = 82 ms.
05500		CLRF0		;Set scan flag
05600	
05700		JF1S	CKIN	;Check if alfa off.
05800		DJNZ	OFFL,CKIN	;OFFW ← OFFW - 1.
05900		DJNZ	OFFH,CKIN
06000		CPLF1	;Set alfa led off flag.
     

00100	;INPUT WAIT.	Check upflg time?
00200	   OFFSET ← TBIT/3	;Center delay?
00300	INWAI:	JTF	UPFLG	;Check if timer time out.
00400	
00500	CKIN:	JT0H	INWAI	;Check for start bit.
00600	
00700		MOVRI	K,OFFSET-4	;Center - Itime.
00800	CENTER:	DJNZ	K,CENTER	;Wait for center of bit
00900		JT0H	INWAI	;Check if valid start bit
01000	
01100	; Byte input routine
01200		MOVRI	N,11	;# of bits -1
01300	
01400	ILOOP:	MOVRI	K,TBIT-5;tBIT - tI
01500	WAI:	DJNZ	K,WAI
01600		CLRC
01700		JT0H	BITON
01800		RORC
01900		JMP	BITOFF
02000	BITON:	CPLC
02100		RORC
02200		NOP
02300	
02400	BITOFF:	DJNZ	N,ILOOP
02500	
02600		ROLC		;Shift out stop bit
02700		JCC	INWAI	;Check for good stop bit.
02800	
02900		JBS	7,BYTE1	;Check if first or second byte.
03000	
03100		MOVAR	CMD	;Save first input byte.
03200		JMP	INWAI	;Get next byte.
03300	
03400	BYTE1:	MOVAR	CMD1	;Save second byte.
03500	
03600		CLRA	;SPD default.
03700		JT1H	ADZRO	;Speed off.
03800	
03900	   ;A/DCHAN ← SPEED.
04000		OUTB	;Latch zero on bus.
04100		ORPI	S,200	;ALE.
04200		ANPI	S,177	;NOT ALE.
04300	
04400		CALL	CONVRT	;Wait for speed.
04500	
04600		JNZ	ADZRO	;Check if on and zero.
04700		INCA	;A ← 1.
04800	
04900	ADZRO:	MOVRI	K,SPD	;Save speed pot value.
05000		MOVAM	K
     

00100		CALL	CLED	;Clear cal. and mode leds.
00200		MOVRA	CMD	;Get mode code.
00300		RORC	;Get cal. bit.
00400		ANI	7	;Zero data input to LS259.
00500		CALL	WLED	;Write mode led.
00600	
00700		JCC	CKJOY	;No calib. bit.
00800		CLRA	;Led 0.
00900		CALL	WLED	;Write cal. led.
01000	
01100	CKJOY:	JINT	GPOTS	;Check for joy stick.
01200		MOVRI	K,JSC
01300		MOVMI	K,4	;JSC ← 1.
01400		JMP	CKSCAN
01500	
01600	GPOTS:	MOVRA	CMD	;Setup JS led bits.
01700		SWAP	;Get JS led bits.
01800		ANI	3	;2 JS led bits.
01900		MOVRI	K,JSC
02000		ORM	K	;A ← A .OR. JSC.
02100		CALL	WJLED	;Write JS led bits.
02200	
02300	;A/D convert routines.
02400		MOVI	1	;Chanel 1.
02500		OUTB	;Latch bus output.
02600		ORPI	S,200	;ALE
02700		ANPI	S,177	;NOT ALE.
02800	
02900		MOVI	375	;NOT CLR bit.
03000		ANPA	JS	;NOT CLR.
03100		CPLA
03200		ORPA	JS	;CLR.
03300		MOVRI	P,P0	;JS pot index.
03400		MOVRI	N,10	;# of pots + switch channels.
03500	
03600	ADLOOP:	CALL	CONVRT	;Wait for A/D.
03700		MOVAM	P	;Ram(p) ← Pots&sws(p).
03800	
03900		MOVI	376
04000		ANPA	JS	;NOT CNT.
04100		CPLA
04200		ORPA	JS	;CNT
04300	
04400		INCR	P	;Next pot.
04500		DJNZ	N,ADLOOP	;Next channel.
04600	
04700	;Check for scan flag.
04800	CKSCAN:	JF0S	CKJSC	;Scan flag.
04900	
05000		JMP	SCAN	;Scan switches.
     

00100	CKJSC:	MOVRI	K,JSC
00200		MOVMA	K	;A ← JSC.
00300		JBS	2,ZPOTS	;Check if JS not calib.
00400	
00500		MOVRI	P,P0	;Pots pointer.
00600		MOVRI	O,OP0	;Offset pointer.
00700		MOVRI	N,4	;# of pots.
00800	
00900	OFFSL:	MOVMA	P	;Get pot.
01000		CPLA
01100		ADDM	O	;Subtract offset.
01200		CPLA
01300		MOVAM	P	;Save pot.
01400	
01500		INCR	P
01600		INCR	O
01700		DJNZ	N,OFFSL
01800		JMP	CKACT
01900	
02000	ZPOTS:	CLRA
02100		MOVRI	P,P0
02200		MOVRI	N,4	;# of pots.
02300	ZPL:	MOVAM	P	;Ram(Pots) ← 0.
02400		INCR	P
02500		DJNZ	N,ZPL
02600	
02700	;Activity check.
02800	CKACT:	MOVRI	K,OCMD
02900		MOVMA	K
03000		XORR	CMD	;A ← CMD .XOR. OCMD.
03100		JNZ	ACT
03200		MOVRI	K,OCMD1	;Old alfa index.
03300		MOVMA	K
03400		XORR	CMD1
03500		JNZ	ACT
03600	
03700		SRB1	;Select ram bank 1.
03800		MOVRA	SW0
03900		JNZ	RACT
04000		MOVRA	SW1
04100		JNZ	RACT
04200		MOVRA	SW2
04300		ANI	77	;Mask out JS and P/O bits.
04400		JNZ	RACT
04500	
04600		MOVRI	P,SPD	;Now pot index.
04700		MOVRI	O,OSPD	;Old pot index.
04800		MOVMA	P	;Check speed.
04900		XORM	O
05000		ANI	374	;Stablize.
05100		JZ	CKJP
05200	
05300	RACT:	SRB0	;Select ram bank 0.
05400	ACT:	JMP	ACTIVE
     

00100	CKJP:	MOVRI	N,4
00200	JSZCK:	INCR	P
00300		MOVMA	P
00400		ANI	374	;Stablize.
00500		JNZ	RACT	;Check if JS pots are zero.
00600		DJNZ	N,JSZCK
00700	
00800		SRB0	;Select ram bank 0.
00900	   ;Page boundry.
01000		CLRA	;Blank message index.
01100		JF1S	ADPY	;Check if alfa off.
01200		JMP	OBITS	;Not active.
01300	
01400	RSTRAM:	SRB0	;Select ram bank 0.
01500	ACTIVE:	MOVRA	CMD	;OLD ← NEW.
01600		MOVRI	K,OCMD
01700		MOVAM	K	;OCMD.
01800		MOVRA	CMD1
01900		INCR	K
02000		MOVAM	K	;OCMD1.
02100	
02200		MOVRI	P,SPD
02300		MOVRI	O,OSPD
02400		MOVMA	P	;A ← SPD.
02500		MOVAM	O	;OSPD ← A.
02600	
02700		CLRF1	;Alfa led off flag ← 0.
02800		MOVRI	OFFH,10	;OFFW ← tOWAIT.
02900	
03000		MOVRA	CMD1	;Update alfa leds.
03100		XORI	233	;Check if COMP MODE.
03200		JZ	CMODE
03300		MOVRA	CMD1
03400		SWAP	;Shift etc.
03500		ANI	360	;For 16 messages.
03600	ADPY:	CALL	OALFA	;Output message.
03700	
03800	OBITS:	MOVRI	CMD1,0	;Init check sum.
03900		MOVRI	I,SW0	;Point to out bytes.
04000		MOVRI	CMD,10	;# of output bytes.
04100	
04200	OUTL:	MOVMA	I	;Get output byte.
04300		CALL	OBYTE
04400		ADR	CMD1	;Add it to cksum.
04500		MOVAR	CMD1
04600	
04700		INCR	I
04800		DJNZ	CMD,OUTL
04900	
05000		MOVRA	CMD1
05100		CPLA
05200		INCA
05300		CALL	OBYTE	;Output check sum.
05400	
05500		JMP	INWAI	;Loop back to input wait.
05600	
05700	CMODE:	DECA	;A ← 377.
05800		JNZ	ADPY	;Jump.
     

00100	; Output Acc. to SI/O line
00200	OBYTE:	MOVRI	K,11	;# of bits -1
00300		CLRC
00400		ROLC		;Start bit
00500	OLOOP:	OUTP	TT	;Output bit
00600		RORC
00700		MOVRI	N,TBIT-3	;TBIT - Itime.
00800	
00900	OWAIT:	DJNZ	N,OWAIT
01000		DJNZ	K,OLOOP
01100	
01200		ORPI	TT,377	;Stop bit.
01300		MOVRI	N,TBIT-10	;TBIT - Itime.
01400	SWAIT:	DJNZ	N,SWAIT
01500		RORC
01600		RET
01700	
01800	WLED:	OUTB	;Latch A on bus.
01900		MOVI	7	;NOT led E bit.
02000		ANPA	JS	;NOT E.
02100		CPLA
02200		ORPA	JS	;E.
02300	
02400		RET
02500	
02600	;Clear leds
02700	CLED:	MOVRI	N,370
02800		MOVRA	N	;Setup regs.
02900	CLRL:	CALL	WLED	;Clear led loop.
03000		INCR	N	;Next led.
03100		MOVRA	N
03200		JNZ	CLRL
03300	
03400		RET
03500	
03600	;Convert channel and wait.
03700	CONVRT:	ORPI	S,100	;STRT.
03800		ANPI	S,277	;NOT STRT.
03900	
04000		MOVI	=22	;=172 micro seconds?
04100	CONL:	DECA	;Convert wait.
04200		JNZ	CONL
04300		MOVXMA	K	;Get A/D output.
04400		MOVXMA	K	;Twice for bus unlatch.
04500		OUTB	;Latch bus for output.
04600		RET
04700	
04800	;Alfa led output routines.
04900	CALED:	CLRA	;Blank string index.
05000	
05100	OALFA:	MOVRI	CMD1,0	;Clear blank flag.
05200		JNZ	SAVI	;Check for blank.
05300		DJNZ	CMD1,GETCE	;Jump.
05400	SAVI:	JBS	3,GETCM	;Check for COMP MODE.
05500		MOVAR	I	;Save string index.
05600	GETCE:	MOVI	376	;NOT CE0.
05700	
05800	CENBL:	MOVRI	N,4	;# of chrs in package.
05900		MOVAR	K	;Save CE.
06000		MOVAX	CEW	;NOT CE.
     

00100	CHRL:	MOVRA	CMD1	;Check blank flag.
00200		JNZ	BLANK
00300		MOVRA	I
00400		MOVP3	;A ← String(chr).
00500	OUTALF:	OUTB	;Latch bus output.
00600	
00700		MOVI	367
00800		ANPA	CEW	;NOT W.
00900		CPLA
01000		ORPA	CEW	;W
01100	
01200		INCR	I	;CHR ← CHR+1.
01300		DJNZ	N,CHRL
01400	
01500		MOVRA	K
01600		ROL	;Next CE.
01700		JBS	3,CENBL
01800	
01900		ORPA	CEW	;CE.
02000		RET
02100	
02200	GETCM:	CLRA	;Point to COMP MODE message.
02300		JZ	GETCE	;Jump.
02400	
02500	BLANK:	MOVRA	N	;Get chr. address.
02600		ROR
02700		ROR
02800		ORI	40	;ASCII <space>.
02900		JNZ	OUTALF	;Jump.
03000	
03100	WJLED:	MOVAR	N	;Save JS led bits.
03200	CJLED:	MOVI	355	;NOT CNT,,CLR.
03300		ANPA	JS	;NOT CLR.
03400		CPLA
03500		ORPA	JS	;CLR.
03600		SWAP	;A ← 2,,1.
03700	
03800		INCR	N	;Fix for latch.
03900		JMP	CKZRO
04000	
04100	CJL:	CPLA	;A ← 15,,16.
04200		ANPA	JS	;NOT CNT.
04300		CPLA
04400		ORPA	JS	;CNT
04500	CKZRO:	DJNZ	N,CJL
04600	
04700		MOVI	373
04800		ANPA	JS	;NOT LAT.
04900		CPLA
05000		ORPA	JS	;LAT.
05100	
05200		RET
     

00100	; Bit spreading table
00200	   LOC 1000	;1000 = Start of page two.
00300		125 ↔ 124 ↔ 121 ↔ 120 ↔ 105 ↔ 104 ↔ 101 ↔ 100
00400		 25 ↔  24 ↔  21 ↔  20 ↔   5 ↔   4 ↔   1 ↔   0
00500	   SBITS ← 60	;Scan bits.
00600	   ROW0 ← 357	;Scan row 0.
00700	   ROW1 ← 337	;Scan row 1.
00800	
00900	SCAN:	SRB1	;Select ram bank 1.
01000		CPLF0		;Reset scan flag.
01100		ORPI	S,SBITS	;Turn off rows
01200		ANPI	S,ROW0	;Enable row 0.
01300		INP	TT	;Scan row 0
01400		MOVAR	SW0	;Save it
01500		ANI	17	;Get low nibble
01600		MOVPD		;Get bits from spread table
01700		XCHR	SW0
01800		SWAP		;Swap high low nibbles
01900		ANI	17	;Get high nibble 
02000		MOVPD
02100		MOVAR	SW1
02200	
02300		ORPI	S,SBITS	;Turn off row 0.
02400		ANPI	S,ROW1	;Enable row 1.
02500		INP	TT	;Scan row 1
02600		ORPI	S,SBITS	;Disable scan.
02700		MOVAR	SW2	;Save row 1
02800		ANI	17	;Low nibble
02900		MOVPD
03000		ROL		;Shift + bits
03100		ORR	SW0	;Or into - bits
03200		ANI	374	;Clear teach and off bits.
03300		MOVAR	SW0
03400		MOVRA	SW2	;Get row 1 again
03500		SWAP
03600		ANI	17
03700		MOVPD
03800		ROL
03900		ORR	SW1
04000		MOVAR	SW1
04100	
04200		MOVXA	PBL	;Get push buttons.
04300		MOVAR	SW2	;Save low nibble.
04400		MOVXA	PBH
04500		SWAP	;High nibble.
04600		ORR	SW2
04700	
04800		CPLA
04900		MOVAR	SW2
05000		ANI	77	;Zero JS and P/O bits.
05100		XCHR	SW2
05200		ROLC		;Shift & swap teach & off bits
05300		ROL
05400		ROLC
05500		ANI	3
05600		ORR	SW0
05700		MOVAR	SW0
05800	
05900		JINT	GETJSW	;Check if joy stick.
06000		SRB0	;Select ram bank 0.
06100		JMP	ZPOTS	;No joy stick.
     

00100	GETJSW:	MOVRI	K,JW1
00200		MOVMA	K	;A ← P/O.
00300		ANI	100	;Get P/O bit.
00400		ORR	SW2
00500		MOVAR	SW2	;SW2 ← P/O .OR. PBSWs.
00600		MOVRI	K,JW3
00700		MOVMA	K	;Joy stick T/JS/C bits.
00800		ANI	300
00900		JZ	SETOFF	;Calib. joy stick.
01000	
01100		JBS	6,SETJT
01200		MOVI	100
01300	SETJT:	XORI	300	;Complement J/T bit.
01400		ORR	SW2	;OR into SW2.
01500		MOVAR	SW2
01600	
01700		JBS	7,GTOOL	;Check for JS mode.
01800		SRB0	;Select ram bank 0.
01900		JMP	CKJSC
02000	
02100	GTOOL:	MOVRI	K,JW0	;Check JS switch bits.
02200		MOVMA	K	;Get JS teach switch.
02300		ROLC
02400		MOVRA	SW0
02500		ROR
02600		ROLC	;Shift teach bit into SW0.
02700		MOVAR	SW0
02800	
02900		MOVRI	K,JW2
03000		MOVMA	K	;Get JS tool bits.
03100		ANI	300
03200		JNZ	TPLUS	;Check for T-.
03300	
03400		MOVI	100	;T- bit.
03500	STOOL:	XCHR	SW1
03600		ANI	77	;Zero TBOX tool bits.
03700		ORR	SW1	;SW1 ← SW1 .OR. JSTOOLBITS.
03800		MOVAR	SW1
03900		SRB0	;Select ram bank 0.
04000		JMP	CKJSC
04100	
04200	TPLUS:	JBS	6,SETTP	;Check for no tool bits.
04300		CLRA
04400	SETTP:	ANI	200
04500		JMP	STOOL	;OR Tbits into SW1.
04600	
04700	SETOFF:	MOVRI	P,P0	;Pots pointer.
04800		MOVRI	O,OP0	;Offset pointer.
04900		MOVRI	N,4	;# of pots.
05000	SETL:	MOVMA	P	;A ← POT(P).
05100		MOVAM	O	;OFFSET(O) ← A.
05200		INCR	P
05300		INCR	O
05400		DJNZ	N,SETL
05500	
05600		MOVRI	K,JSC
05700		MOVMI	K,0	;JSC ← 0.
05800		MOVI	200
05900		ORR	SW2	;Set JS/T bit.
06000		MOVAR	SW2
06100		JMP	GTOOL
     

00100	;Alfa led message table.
00200	   LOC 1400	;Start of page three.
00300	
00400	("C"∧77)∨300 ↔ ("O"∧77)∨200 ↔ ("M"∧77)∨100
00500	"P"∧77 ↔ (" "∧77)∨300 ↔ ("M"∧77)∨200
00600	("O"∧77)∨100 ↔ "D"∧77 ↔ ("E"∧77)∨300
00700	(" "∧77)∨200 ↔ (" "∧77)∨100 ↔ " "∧77
00800	0 ↔ 0 ↔ 0 ↔ 0
00900	
01000	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
01100	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
01200	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
01300	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "1"∧77
01400	0 ↔ 0 ↔ 0 ↔ 0
01500	
01600	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
01700	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
01800	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
01900	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "2"∧77
02000	0 ↔ 0 ↔ 0 ↔ 0
02100	
02200	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
02300	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
02400	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
02500	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "3"∧77
02600	0 ↔ 0 ↔ 0 ↔ 0
02700	
02800	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
02900	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
03000	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
03100	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "4"∧77
03200	0 ↔ 0 ↔ 0 ↔ 0
03300	
03400	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
03500	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
03600	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
03700	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "5"∧77
03800	0 ↔ 0 ↔ 0 ↔ 0
03900	
04000	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
04100	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
04200	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
04300	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "6"∧77
04400	0 ↔ 0 ↔ 0 ↔ 0
04500	
04600	("L"∧77)∨300 ↔ ("I"∧77)∨200 ↔ ("M"∧77)∨100
04700	"I"∧77 ↔ ("T"∧77)∨300 ↔ (" "∧77)∨200
04800	("S"∧77)∨100 ↔ "T"∧77 ↔ ("O"∧77)∨300
04900	("P"∧77)∨200 ↔ (" "∧77)∨100 ↔ "7"∧77
05000	0 ↔ 0 ↔ 0 ↔ 0
     

00100	("T"∧77)∨300 ↔ ("O"∧77)∨200 ↔ ("O"∧77)∨100
00200	" "∧77 ↔ ("C"∧77)∨300 ↔ ("L"∧77)∨200
00300	("O"∧77)∨100 ↔ "S"∧77 ↔ ("E"∧77)∨300
00400	(" "∧77)∨200 ↔ (" "∧77)∨100 ↔ " "∧77
00500	0 ↔ 0 ↔ 0 ↔ 0
00600	
00700	("T"∧77)∨300 ↔ ("O"∧77)∨200 ↔ ("O"∧77)∨100
00800	" "∧77 ↔ ("F"∧77)∨300 ↔ ("A"∧77)∨200
00900	("R"∧77)∨100 ↔ " "∧77 ↔ (" "∧77)∨300
01000	(" "∧77)∨200 ↔ (" "∧77)∨100 ↔ " "∧77
01100	0 ↔ 0 ↔ 0 ↔ 0
01200	
01300	("T"∧77)∨300 ↔ ("E"∧77)∨200 ↔ ("A"∧77)∨100
01400	"C"∧77 ↔ ("H"∧77)∨300 ↔ (" "∧77)∨200
01500	("M"∧77)∨100 ↔ "O"∧77 ↔ ("D"∧77)∨300
01600	("E"∧77)∨200 ↔ (" "∧77)∨100 ↔ " "∧77
01700	0 ↔ 0 ↔ 0 ↔ 0
01800	
01900	("M"∧77)∨300 ↔ ("A"∧77)∨200 ↔ ("N"∧77)∨100
02000	"U"∧77 ↔ ("A"∧77)∨300 ↔ ("L"∧77)∨200
02100	(" "∧77)∨100 ↔ "M"∧77 ↔ ("O"∧77)∨300
02200	("D"∧77)∨200 ↔ ("E"∧77)∨100 ↔ " "∧77
02300	0 ↔ 0 ↔ 0 ↔ 0
02400	
02500	("N"∧77)∨300 ↔ ("O"∧77)∨200 ↔ (" "∧77)∨100
02600	"H"∧77 ↔ ("I"∧77)∨300 ↔ ("G"∧77)∨200
02700	("H"∧77)∨100 ↔ " "∧77 ↔ ("P"∧77)∨300
02800	("W"∧77)∨200 ↔ ("R"∧77)∨100 ↔ " "∧77
02900	0 ↔ 0 ↔ 0 ↔ 0
03000	
03100	("P"∧77)∨300 ↔ ("R"∧77)∨200 ↔ ("O"∧77)∨100
03200	"G"∧77 ↔ (" "∧77)∨300 ↔ ("R"∧77)∨200
03300	("U"∧77)∨100 ↔ "N"∧77 ↔ ("N"∧77)∨300
03400	("I"∧77)∨200 ↔ ("N"∧77)∨100 ↔ "G"∧77
03500	0 ↔ 0 ↔ 0 ↔ 0
03600	
03700	("R"∧77)∨300 ↔ ("U"∧77)∨200 ↔ ("N"∧77)∨100
03800	" "∧77 ↔ ("H"∧77)∨300 ↔ ("O"∧77)∨200
03900	("L"∧77)∨100 ↔ "D"∧77 ↔ (" "∧77)∨300
04000	(" "∧77)∨200 ↔ (" "∧77)∨100 ↔ " "∧77
04100	0 ↔ 0 ↔ 0 ↔ 0
04200	
04300	("F"∧77)∨300 ↔ ("A"∧77)∨200 ↔ ("T"∧77)∨100
04400	"A"∧77 ↔ ("L"∧77)∨300 ↔ (" "∧77)∨200
04500	("E"∧77)∨100 ↔ "R"∧77 ↔ ("R"∧77)∨300
04600	("O"∧77)∨200 ↔ ("R"∧77)∨100 ↔ " "∧77
04700	0 ↔ 0 ↔ 0 ↔ 0
04800	
04900	   LOC 2272
05000		0	;This is for a block of zeros
05100	END